import {
  BwCustomComNodeForFromTypeEnum,
  BwCustomComNodeForJsExpParamDataTypeEnum,
  BwCustomComNodeForJsExpParamFromTypeEnum,
} from './enum'

/** 当前节点 For 信息模型 */
export interface BwCustomComNodeForInfoModel {
  /** 是否开启 IF */
  visible?: boolean

  /** 循环变量来源 */
  forVarFrom?: BwCustomComNodeForFromTypeEnum

  /** 常量值 */
  constValue?: string

  /** 组件变量名称 */
  comVarName?: string

  /** 组件外放属性名称 */
  comPropsName?: string

  /** js 表达式逻辑体 */
  jsExpBodyLogic?: string | null

  /** js 表达式逻辑体入参 */
  jsExpParams?: Array<BwCustomComNodeForJsExpParamModel> | null
}

/** 当前自定义组件属性js 表达式入参模型 */
export interface BwCustomComNodeForJsExpParamModel {
  /** 参数标识 */
  key: string

  /** 参数名称 */
  name: string | null

  /** 参数是否必填 */
  isRequire: boolean | null

  /** 参数数据类型 */
  paramDataType: BwCustomComNodeForJsExpParamDataTypeEnum

  /** 参数值来源 */
  paramFromType: BwCustomComNodeForJsExpParamFromTypeEnum

  /** 参数常量值 */
  constValue: string

  /** 组件变量名称 */
  comVarName?: string

  /** 组件外放属性名称 */
  comPropsName?: string

  /** 组件节点循环变量名称 */
  nodeForVarName?: string

  /** 插槽变量  */
  nodeSlotVarName?: string

  /** 参数备注 */
  remark?: string | null
}
